The Categorical Multi-Combinator Machine: CMCM

نویسندگان

  • Simon J. Thompson
  • Rafael Dueire Lins
چکیده

Implementations of functional programming languages can take a number of different forms; the first implementations used the SECD machine of Landin [Lan], which is a generalisation of the abstract machine underlying implementations of imperative programming languages like Pascal. Making the implementation lazy can be done with some cost in efficiency (details can be found in Henderson’s book [Hen]), but a more natural way of proceeding is provided by an implementation which uses rewriting of source-level expressions. Such implementations were pioneered by Wadsworth’s work on graphreduction for the λ-calculus [Wad], but only achieved reasonable performance after Turner’s observation that the translation of programs into a variable-free, or combinator, form allowed for more efficient execution. Turner’s work on the graph reduction of combinator code (together with that of Abdali [Abd]) was followed up by a number of researchers, including Hughes ([Hug]), Johnsson ([Joh]) and Lins ([Lins1) each of whom developed different systems of combinators, and algorithms for translating source programs into combinator form. Each of these implementations can be characterised as interpretive, as the reduction and transformation of the combinator graph can be seen as interpretation of the graph, and the obvious question raised by this is that of whether a true compiler for lazy functional programs can be produced. The first attempt to do this was the G-machine (‘G’ for graph) of Augustsson and Johnsson [Joh] in which many of the manipulations of the graph are transformed into abstract machine instructions, which can be rendered into machine code. Another approach is given by the Three Instruction Machine, or TIM [FaiWr], which comes full circle in using closures to represent the expressions under evaluation.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Implementing SASL using Categorical Multi-combinators

Categorical multi-combinators form a rewriting system developed with the aim of providing efficient implementations of lazy functional languages. The core of the system of categorical multi-combinators consists of only two rewriting laws with a very low pattern-matching complexity. This system allows the equivalent of several -reductions to be performed at once, and avoids the generation of tri...

متن کامل

A typed, algebraic, computational lambda-calculus

Lambda-calculi with vectorial structures have been studied in various ways, but their semantics remain mostly untouched. The main contribution of this paper is to provide a categorical framework for the semantics of such algebraic lambda-calculi. We first develop a categorical analysis of a general simply-typed lambda-calculus endowed with a structure of module. We study the problems arising fr...

متن کامل

Hardware/Software Co-Reliability of Configurable Digital Systems

This paper investigates on the co-effect of hardware and software on the reliability as measured by quality level (or defect level) of configurable multichip module (CMCM) systems. Hardware architecture of CMCM can be configured to accommodate target application design. An application, as provided in a form of software, is partitioned and mapped on the provided configurable hardware. Granularit...

متن کامل

A structural and nominal syntax for diagrams

The correspondence between various monoidal categories and graphical languages of diagrams has been studied extensively, leading to applications in quantum computing and communication, systems theory, circuit design and more. From the categorical perspectives, diagrams can be specified using (name-free) combinators which enjoy elegant equational properties. However, established notations for di...

متن کامل

Partial Association Components in Multi-way Contingency Tables and Their Statistiical Analysis

In analyses of contingency tables made up of categorical variables, the study of relationship between the variables is usually the major objective. So far, many association measures and association models have been used to measure  the association structure present in the table. Although the association measures merely determine the degree of strength of association between the study varia...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Comput. J.

دوره 35  شماره 

صفحات  -

تاریخ انتشار 1992